home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ham Radio
/
Ham Radio CD-ROM (Emerald Software) (1995).ISO
/
ant
/
antenna2
/
rectaper.bas
< prev
next >
Wrap
BASIC Source File
|
1986-09-09
|
3KB
|
99 lines
10 CLS:KEY OFF
20 'uniform rectangular aperture
30 ' ahmad faizal mohd zain
40 ' 7/29/86
50 DIM Y(200),W(200),ANG(200),A(200)
60 DEF FN LOGTEN(X)=LOG(X)/LOG(10)
70 PI=3.141592
80 PRINT" UNIFORM RECTANGULAR APERTURE":PRINT:PRINT
90 INPUT"width in x-direction (lambda)";LX
100 INPUT "width in y-direction (lambda)";LY
110 HPX=.886/LX:HPY=.866/LY
120 PRINT:PRINT USING "Half power beamwidth in xz-plane is ##.##";HPX*180/PI;:PRINT" deg."
130 PRINT USING "Half power beamwidth in yz-plane is ##.##";HPY*180/PI;:PRINT" deg."
140 D=4*PI*LX*LY
150 PRINT:PRINT USING "Directivity is ####.## ";D;:PRINT USING " or ##.##";10*FN LOGTEN(D);:PRINT" dB."
160 LOCATE 22,1:GOSUB 870
170 YMIN=0:YMAX=0
180 'xz-plane
190 J=0
200 FOR THE=-90 TO 90
210 RTHE=THE*PI/180
220 U=SIN(RTHE)
230 AX=PI*LX
240 IF U=0 THEN F=COS(RTHE):GOTO 260
250 F=COS(RTHE)*SIN(AX*U)/(AX*U)
260 Y(J)=ABS(F)
270 Y(J)=20*FN LOGTEN(Y(J))
280 IF Y(J)>YMAX THEN YMAX=Y(J)
290 ' IF Y(J)<YMIN THEN YMIN=Y(J)
300 J=J+1
310 NEXT THE
320 YMIN=-50-YMAX
330 INPUT"Type return to continue...";W
340 GOSUB 680
350 LOCATE 3,20:PRINT"Principal plane pattern in xz-plane"
360 GOSUB 760
370 GOSUB 870
380 J=0
390 YMIN=0:YMAX=0
400 FOR THE=-90 TO 90
410 RTHE=THE*PI/180
420 V=SIN(RTHE)
430 BX=PI*LY
440 IF V=0 THEN F=1:GOTO 460
450 F=SIN(BX*V)/(BX*V)
460 Y(J)=ABS(F)
470 Y(J)=20*FN LOGTEN(Y(J))
480 IF Y(J)>YMAX THEN YMAX=Y(J)
490 J=J+1
500 NEXT THE
510 YMIN=-50-YMAX
520 LOCATE 23,1:INPUT" Type return to continue...";W
530 GOSUB 680
540 LOCATE 3,20:PRINT"Principal plane pattern in yz-plane"
550 GOSUB 760
553 LINE (239,0)-(239,154)
555 GOSUB 890
560 END
570 INPUT"DO YOU WANT TO MAKE ANY CHANGES";AN$
580 IF AN$="N" OR AN$="n" THEN RETURN
590 INPUT"TYPE SAMPLING POINT TO CHANGE ";Q
600 PRINT Q,W(Q),ANG(Q),A(Q),:INPUT A(Q)
610 '
620 CLS:FOR N=-NMAX TO NMAX:I=N+NMAX
630 PRINT I,W(I),ANG(I),A(I)
640 NEXT N
650 PRINT
660 GOSUB 570
670 RETURN
680 ' MAY 29, 1986
690 ' RECTANGULAR PLOT OF DATA
700 SCREEN 2:CLS
710 FOR K=7 TO 67 STEP 10:LOCATE 20,K:PRINT"+";:NEXT K
720 FOR K=4 TO 20 STEP 4:LOCATE K,67:PRINT"-":NEXT K
730 VIEW (52,28)-(530,154),,1
740 LINE (239,0)-(239,154)
750 RETURN
760 '
770 PSET (0,Y(0))
780 WINDOW (0,YMIN)-(180,YMAX)
790 FOR X=0 TO 181
800 LINE -(X,Y(X))
810 NEXT X
815 LINE (239,0)-(239,154)
820 FOR K=4 TO 20 STEP 4:LOCATE K,68:PRINT USING "###.##";-(YMAX-YMIN)*(K-4)/16:NEXT K
830 LOCATE 4,75:PRINT"dB"
840 LOCATE 21,6:PRINT"-90":LOCATE 21,37:PRINT"0":LOCATE 21,67:PRINT"90"
850 RETURN
860 LOCATE 24,1:PRINT"TYPE <RETURN> TO CONTINUE...";:INPUT W:SCREEN 0,0
870 LOCATE 23,1:PRINT"I'm doing some calculation. Please wait..."
880 RETURN
890 T$="DO YOU WANT TO RUN THIS PROGRAM AGAIN (Y/N)? ":LC=23:GOSUB 950
900 AN$=INKEY$
910 IF AN$="Y" OR AN$="y" THEN RUN
920 IF AN$="N" OR AN$="n" THEN END
930 GOTO 890
940 :
950 LOCATE LC,(80-LEN(T$))/2+1:PRINT T$:RETURN 'SUBROUTINE TO CENTRE TEXT